
#include "Common/Logger.h"

namespace keeper_server {


void loggerInitiation(const std::string& log_file) {
  Poco::AutoPtr<Poco::FileChannel> file_channel(new Poco::FileChannel());
  file_channel->setProperty("rotation", "10M");
  file_channel->setProperty("archive", "timestamp");
  file_channel->setProperty("path", log_file);
  Poco::AutoPtr<Poco::PatternFormatter> pattern_formatter(
      new Poco::PatternFormatter("%Y-%m-%d %H:%M:%S.%F (%P) [%p] <%O:%u> %t"));
  Poco::AutoPtr<Poco::FormattingChannel> formatter_channle(
      new Poco::FormattingChannel(pattern_formatter, file_channel));
  Poco::Logger::root().setChannel(formatter_channle);
  Poco::Logger::get("keeper_server").setLevel(Poco::Message::PRIO_TRACE);
}

std::string getMessage(const char* Format, ...) {
  int ret = 0;
  char pszDescribeInfo[LOG_MAX];

  va_list ap;
  va_start(ap, Format);
  ret = vsnprintf(pszDescribeInfo, LOG_MAX, Format, ap);
  va_end(ap);
  if ((LOG_MAX <= ret) || (0 > ret)) {
    return "";
  }
  return pszDescribeInfo;
};

}  // namespace keeper_server
